﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GN.Pay.TradeChannel
{
    /// <summary>
    /// 交易付款申请结果调用类型
    /// </summary>
    [Serializable]
    public enum TradePayApplyResultCallType
    {
        /// <summary>
        /// App Url 参数
        /// </summary>
        App_Url = 1,

        /// <summary>
        /// APP JSON参数
        /// </summary>
        App_Json = 2,

        /// <summary>
        /// Web 脚本
        /// </summary>
        Web_Script = 11,

        /// <summary>
        /// Web 二维码
        /// </summary>
        WEB_Qrcode = 12,

        /// <summary>
        /// Web Post
        /// </summary>
        Web_Post = 13,
        /// <summary>
        /// Web Get
        /// </summary>
        Web_Get = 14,

        /// <summary>
        /// 等待短信验证
        /// </summary>
        Wait_SmsCheck = 90,

        /// <summary>
        /// 直接支付成功(如部份协议支付)
        /// </summary>
        PaySuccess = 99
    }

    /// <summary>
    /// 交易申请结果状态
    /// </summary>
    public enum TradeApplyResultState
    {
        /// <summary>
        /// 账户余额不足
        /// </summary>
        Balance_Insufficient_Error = -10,

        /// <summary>
        /// 申请出错
        /// </summary>
        Apply_Error = -1,

        /// <summary>
        /// 完成，并且已成功
        /// </summary>
        Complete_Success = 1,

        /// <summary>
        /// 申请成功，等待通知
        /// </summary>
        Apply_Success_Wiat_Notify = 2,

        /// <summary>
        /// 信息出错(不可能再成功)
        /// </summary>
        Info_Error = 3
    }

    /// <summary>
    /// 通道类型
    /// </summary>
    [Flags]
    public enum ChannelType
    {
        /// <summary>
        /// 空
        /// </summary>
        None = 0,
        /// <summary>
        /// Web 应用
        /// </summary>
        Web = 1,
        /// <summary>
        /// 原生 App 应用
        /// </summary>
        NativeApp = 2,
        /// <summary>
        /// Web App 
        /// </summary>
        WebApp = 4,
        /// <summary>
        /// 手机页面
        /// </summary>
        Wap = 8,
        /// <summary>
        /// 所有
        /// </summary>
        ALL = Web | NativeApp | WebApp | Wap
    }

    /// <summary>
    /// 银行账户类型
    /// </summary>
    public enum BankAccountType
    {
        /// <summary>
        /// 借记卡
        /// </summary>
        Debit = 1,

        /// <summary>
        /// 信用卡
        /// </summary>
        Credit = 2
    }

    /// <summary>
    /// 协议申请结果状态
    /// </summary>
    public enum ProtocolApplyResultState
    {
        /// <summary>
        /// 成功
        /// </summary>
        Success = 1,

        /// <summary>
        /// 申请成功，等待通知
        /// </summary>
        Apply_Success_Wiat_Notify = 2,

        /// <summary>
        /// 失败
        /// </summary>
        Fail = 99,
    }

}
